This invention relates to the field of telephony using ATM networks and more particularly to techniques for processing telephony signals communicated over ATM networks using ATM Adaptation Layer 1 (AAL1) telephony.
Asynchronous transfer mode (ATM) is an approach to communicate data in fixed packets or cells. ATM Adaptation Layer 1 (AAL1) is used to carry telephony traffic through an ATM network using ATM cells. In order to transport the analog telephony signal across an ATM network, the telephony signals at the source of the transmission are digitized by sampling the analog signals at regular intervals. For example, 8-bit digital samples of a voice signal may be sampled at regular 125 xcexcs (8 kHz) intervals. The digital information corresponding to the analog signal may then be packed into ATM cells and transported to the destination across the ATM network.
After the cells arrive at the destination, the information contained in the cells is extracted to form frames. Within an AAL1 data stream, telephony traffic is carried in xe2x80x9cframes.xe2x80x9d Each frame is the complete set of 8-bit digital samples that are collected during a single 125 xcexcs period for all of the voice channels (DS-0s) being carried within the AAL1 stream. Frames may or may not overlap exactly with the 47 (sometimes fewer) byte payload of an AAL1 cell. In order to reproduce the transmitted telephony signal at the destination, the frames storing the recurrent sequence of samples are converted back to an analog signal.
As the cells carrying the telephony signal pass through the ATM network, they encounter variable delay, or xe2x80x9cjitter.xe2x80x9d Jitter results due to dynamically changing buffer fullness in the ATM switches on the AAL1 cell path, which is in turn due to the presence of other ATM traffic in these switches. Accordingly, jitter causes ATM cells to arrive at irregular intervals at the receive end of the network. Jitter is not acceptable because it prevents proper reconstruction, at regular intervals, of the analog signal. All of the different variants of AAL1 suffer from jitter problems. Consequently, in order for telephony traffic to be transported using AAL1, the jitter associated with ATM AAL1 cells needs to be eliminated.
Conventional approaches attempt to reduce or eliminate jitter by using various buffering schemes. The level of buffering used by these schemes is based on the overall jitter conditions in the ATM network. However, since the jitter conditions associated with the cells are unknown and variable, in order to use these buffering techniques, a computationally difficult algorithm is typically employed to perform network jitter analysis to determine the optimal buffering level for the network. This process is usually time consuming and expensive. Typically this algorithm is employed at the receive end of the communication.
Thus, there is a need for techniques which can remove jitter associated with AAL1 telephony traffic without having to perform complex network analysis and which can be adapted to changing network conditions.
The present invention provides techniques for removing jitter associated with ATM cells transported using AAL1. In one embodiment, a starve/inspect buffering technique is used to remove jitter while avoiding unneeded buffering that would cause excessive delay.
According to one aspect of the present invention, a first-in-first-out (FIFO) buffer is provided for queuing the frames containing data extracted from the AAL1 cells. Frames are written to the tail of the buffer and can be read from the head of the buffer for processing purposes. When buffer starvation occurs because of jitter associated with the AAL1 cells, a replacement frame may be inserted into the buffer and made available to the reader. This increments the average buffer fullness level which can be dynamically increased if jitter conditions increase.
According to another aspect of the present invention, when the jittered cells arrive, the frames corresponding to the jittered cells are inserted into the buffer after the replacement frames. The jittered frames may then be read and processed in subsequent time periods.